package com.java;

import java.io.IOException;

public class RuntimeAPI {
    public static void main(String[] args) throws IOException {
        // getRuntime：获取单例Runtime实例对象，每次获取到的都是同一对象。每个电脑只能存在一个运行环境，创建多个Runtime实例对象无意义
        Runtime runtime1 = Runtime.getRuntime();
        Runtime runtime2 = Runtime.getRuntime();
        System.out.println(runtime1 == runtime2); // true

        // availableProcessors：获取Java虚拟机能使用的CPU线程数
        System.out.println(runtime1.availableProcessors()); // 16

        // maxMemory：获取最大内存字节数
        System.out.println(runtime1.maxMemory()); // 3767533568

        // totalMemory：获取已使用内存字节数
        System.out.println(runtime1.totalMemory()); // 255328256

        // freeMemory：获取剩余内存字节数
        System.out.println(runtime1.freeMemory()); // 251320728

        // exec：执行CMD命令，shutdown命令可令电脑强制关机
        runtime1.exec("java -v");

        // exit：终止正在运行的程序，参数为0表示正常终止，参数非0表示异常终止
        runtime1.exit(1);
        System.out.println("程序结束了吗？");
    }
}
